using System;
using System.Collections.Generic;
using System.Text;

namespace RRHH.Competencias.Entities
{
    /// <summary>
    /// Representa un individuo y su informacion habitual. Se utiliza para dar
    /// soporte a otras clases mas detalladas (Ej. Colaborador)
    /// </summary>
    public class Persona
    {
        private long persona_id;
        private string apellido;
        private string nombre;
        private string domicilio;
        private string mail;
        private string telefono;
        private string telefonoMovil;

        public Persona()
        {

        }

        public Persona(long id, string nombre, string apellido)
        {
            this.persona_id = id;
            this.nombre = nombre;
            this.apellido = apellido;
        }

        public long Id
        {
            get { return persona_id; }
            set { persona_id = value; }
        }

        public string Apellido
        {
            get { return apellido; }
            set { apellido = value; }
        }

        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        public string Domicilio
        {
            get { return domicilio; }
            set { domicilio = value; }
        }

        public string Mail
        {
            get { return mail; }
            set { mail = value; }
        }

        public string Telefono
        {
            get { return telefono; }
            set { telefono = value; }
        }

        public string TelefonoMovil
        {
            get { return telefonoMovil; }
            set { telefonoMovil = value; }
        }

        public string NombreCompleto
        {
            get { return Apellido + ", " + Nombre; }
        }

        public override bool Equals(object obj)
        {
            if (obj == null) return false;
            Persona comparar;

            try
            {
                comparar = (Persona)obj;
            }
            catch (Exception)
            {
                return false;
            }

            if (persona_id.Equals(comparar.Id)) return true;
            return false;
        }

        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
    }
}
